------------------------------------------------
--- Evaluation contexts: Adding print to IMP ---
------------------------------------------------

Suggested steps to follow in order to extend the oringinal reduction semantics
with evaluation contexts of IMP in Maude to include a print statement:

1) Modify imp-evaluation-contexts.maude: Include output.maude at the begining, and 
   add Maude commands for executing sumPrintPgm at the end.

2) Run imp-evaluation-contexts.maude: Everything working before should still work;
   sumPrintPgm gets stuck when the first print statement is encountered.

3) Modify imp-split-plug-evaluation-contexts.maude:
   a) Include module OUTPUT in module IMP-CONFIGURATION-EVALUATION-CONTEXTS.
   b) Add the new output component to the configuration.
   c) Change the context construct, plug equation and split rule for
      configurations to account for the output as well.

4) Modify imp-semantics-evaluation-contexts-x.maude, for each x in {1,2,3}:
   a) Change the syntax/context configurations appearing in the rules for
      lookup and assignment into ones also containing the output (kept unchanged).
   b) Change the rule for variable declarations to include the empty output
      in the initial configuration.

5) Modify imp-evaluation-contexts.maude: Add the output buffer component
   (holding an empty buffer) to any configuration holding an explicit state
   that appears in any of the concrete rewrite or search commands.

6) Run imp-evaluation-contexts.maude: Everything working before should still work,
   and should include and empty output buffer in the result configurations;
   sumPrintPgm still gets stuck when the first print statement is encountered.

7) Add the actual reduction semantics with evaluation contexts of print:
   a) First, add the splitting rule and the plugging equation corresponding
      to print's evaluation strategy (strict) into
      imp-split-plug-evaluation-contexts.maude.
   b) Second, add the actual reduction rule of print in each of the files
      imp-semantics-evaluation-contexts-x.maude.

8) Run imp-evaluation-contexts.maude and check that all programs evaluate properly.


------------------------------
--- Observations, thoughts ---
------------------------------

1) We had to change several existing constructs and rules in order to accommodate
   the outpur buffer in the configuration.  These changes had nothing to do with
   the new print statement, they were necessary in order to prepare for the print.

2) We also had to change the rule for programs, to initiate the empty output buffer.
